package org.dromara.curd.dnnyun.domain.vo;

import java.math.BigDecimal;
import java.util.Date;
import org.dromara.curd.dnnyun.domain.DnnyunConsumeOrder;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;



/**
 * 东云消费订单视图对象 dnnyun_consume_order
 *
 * @author wdm
 * @date 2024-02-29
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = DnnyunConsumeOrder.class)
public class DnnyunConsumeOrderVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ExcelProperty(value = "主键")
    private Long orderId;

    /**
     * 门店ID
     */
    @ExcelProperty(value = "门店ID")
    private Long storeId;

    /**
     * 订单号
     */
    @ExcelProperty(value = "订单号")
    private String orderCode;

    /**
     * 订单状态：0待付款，2待发货，3待收货，4未使用，5已完成，6已撤销，7已关闭
     */
    @ExcelProperty(value = "订单状态：0待付款，2待发货，3待收货，4未使用，5已完成，6已撤销，7已关闭", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "dnnyun_order_fettle")
    private Integer fettle;

    /**
     * 审核状态：0未审核，1已审核
     */
    @ExcelProperty(value = "审核状态：0未审核，1已审核", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "dnnyun_check_fettle")
    private Integer checkFettle;

    /**
     * 操作终端：0收银端(线下)，1会员端(线上)
     */
    @ExcelProperty(value = "操作终端：0收银端(线下)，1会员端(线上)", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "dnnyun_order_channel")
    private Integer orderChannel;

    /**
     * 会员姓名
     */
    @ExcelProperty(value = "会员姓名")
    private String memberName;

    /**
     * 本单售卖新品数量，新品总数量
     */
    @ExcelProperty(value = "本单售卖新品数量，新品总数量")
    private Integer saleCount;

    /**
     * 本单旧料回收数量，旧品总数量
     */
    @ExcelProperty(value = "本单旧料回收数量，旧品总数量")
    private Integer oldCount;

    /**
     * 本单退换商品数量，退换品总数量
     */
    @ExcelProperty(value = "本单退换商品数量，退换品总数量")
    private Integer refundCount;

    /**
     * 订单售卖总金额，新品总金额
     */
    @ExcelProperty(value = "订单售卖总金额，新品总金额")
    private BigDecimal orderSaleMoney;

    /**
     * 订单旧料总金额，旧品总金额
     */
    @ExcelProperty(value = "订单旧料总金额，旧品总金额")
    private BigDecimal orderCutMoney;

    /**
     * 订单退换总金额，退换品总金额
     */
    @ExcelProperty(value = "订单退换总金额，退换品总金额")
    private BigDecimal orderRefundMoney;

    /**
     * 订单金额
     */
    @ExcelProperty(value = "订单金额")
    private BigDecimal orderMoney;

    /**
     * 优惠金额
     */
    @ExcelProperty(value = "优惠金额")
    private BigDecimal orderDiscountMoney;

    /**
     * 支付金额
     */
    @ExcelProperty(value = "支付金额")
    private BigDecimal orderPayMoney;

    /**
     * 订单售卖获得积分
     */
    @ExcelProperty(value = "订单售卖获得积分")
    private BigDecimal orderBeforeIntegral;

    /**
     * 订单旧品扣除积分
     */
    @ExcelProperty(value = "订单旧品扣除积分")
    private BigDecimal orderCutIntegral;

    /**
     * 订单退换扣除积分
     */
    @ExcelProperty(value = "订单退换扣除积分")
    private BigDecimal orderRefundIntegral;

    /**
     * 订单实际获得积分
     */
    @ExcelProperty(value = "订单实际获得积分")
    private BigDecimal orderIntegral;

    /**
     * 首个主导购工号
     */
    @ExcelProperty(value = "首个主导购工号")
    private String firstMainSaleUserJobNumber;

    /**
     * 微信支付
     */
    @ExcelProperty(value = "微信支付")
    private BigDecimal wxPay;

    /**
     * 支付宝支付
     */
    @ExcelProperty(value = "支付宝支付")
    private BigDecimal aliPay;

    /**
     * 微信转账
     */
    @ExcelProperty(value = "微信转账")
    private BigDecimal wxTransferPay;

    /**
     * 支付宝转账
     */
    @ExcelProperty(value = "支付宝转账")
    private BigDecimal aliTransferPay;

    /**
     * pos刷卡
     */
    @ExcelProperty(value = "pos刷卡")
    private BigDecimal posPay;

    /**
     * 现金支付
     */
    @ExcelProperty(value = "现金支付")
    private BigDecimal moneyPay;

    /**
     * 其它支付
     */
    @ExcelProperty(value = "其它支付")
    private BigDecimal otherPay;

    /**
     * 储值抵现
     */
    @ExcelProperty(value = "储值抵现")
    private BigDecimal valuePay;

    /**
     * 积分抵现
     */
    @ExcelProperty(value = "积分抵现")
    private BigDecimal integralPay;

    /**
     * 电子券抵现
     */
    @ExcelProperty(value = "电子券抵现")
    private BigDecimal couponPay;

    /**
     * 抹零金额
     */
    @ExcelProperty(value = "抹零金额")
    private BigDecimal ignorePay;

    /**
     * 是否含有以旧换新，0不含有，1含有
     */
    @ExcelProperty(value = "是否含有以旧换新，0不含有，1含有", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "dnnyun_order_hasexchange")
    private Integer hasExChange;

    /**
     * 操作员工号(会员自助的订单无操作员工号)
     */
    @ExcelProperty(value = "操作员工号(会员自助的订单无操作员工号)")
    private String createUserNumber;

    /**
     * 操作员姓名(会员自助的订单无操作员)
     */
    @ExcelProperty(value = "操作员姓名(会员自助的订单无操作员)")
    private String createUserName;

    /**
     * 消费时间
     */
    @ExcelProperty(value = "消费时间")
    private Date orderTime;


}
